package com.clhbolg.service;

import com.clhbolg.domain.bo.PhotoAlbumBo;
import com.clhbolg.domain.vo.PhotoAlbumVo;
import com.clhbolg.model.dto.PageResultDTO;
import com.clhbolg.model.dto.PhotoAlbumAdminDTO;
import com.clhbolg.model.dto.PhotoAlbumDTO;
import com.clhbolg.model.dto.PhotoDTO;
import com.clhbolg.model.vo.request.ConditionVO;
import com.clhbolg.model.vo.request.PhotoAlbumVO;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.page.TableDataInfo;

import java.util.Collection;
import java.util.List;

/**
 * 相册Service接口
 *
 * @author cailinhu
 * @date 2023-02-08
 */
public interface IPhotoAlbumService {

    /**
     * 查询相册
     */
    PhotoAlbumVo queryById(Long id);

    /**
     * 查询相册列表
     */
    TableDataInfo<PhotoAlbumVo> queryPageList(PhotoAlbumBo bo, PageQuery pageQuery);

    /**
     * 查询相册列表
     */
    List<PhotoAlbumVo> queryList(PhotoAlbumBo bo);

    /**
     * 新增相册
     */
    Boolean insertByBo(PhotoAlbumBo bo);

    /**
     * 修改相册
     */
    Boolean updateByBo(PhotoAlbumBo bo);

    /**
     * 校验并批量删除相册信息
     */
    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

    /**
     * 相册列表
     * @return
     */
     List<PhotoAlbumDTO> listPhotoAlbums() ;

    PageResultDTO<PhotoAlbumAdminDTO> listPhotoAlbumsAdmin(ConditionVO conditionVO);

    void saveOrUpdatePhotoAlbum(PhotoAlbumVO photoAlbumVO);

    PhotoAlbumAdminDTO getInfo(Integer albumId);

    List<PhotoAlbumDTO> listPhotoAlbumInfosAdmin();

    /**|
     * 逻辑删除相册
     * @param id
     */
    void deleteAlbums(Long id);

    PhotoDTO selectPhotoByAlbum(Integer albumId,ConditionVO condition);
}
